#ifndef VALIDATOR_MANAGER_H
#define VALIDATOR_MANAGER_H

#include <QtCore/QHash>
#include <QtCore/QSharedPointer>

QT_BEGIN_NAMESPACE
class QValidator;
QT_END_NAMESPACE

namespace core
{

class ValidatorManager
{
public:
    static ValidatorManager* getInstance();
    static void destroy();

    void registerValidator(const QString& name,
        const QSharedPointer<QValidator>& validator);
    void unregisterValidator(const QString& name);

    QSharedPointer<QValidator> getValidator(const QString& name);

private:
    ValidatorManager();
    ~ValidatorManager();

private:
    QHash<QString,QSharedPointer<QValidator> > m_registeredValidators;
};

} // namespace core

#endif
